From a33053db749197c7e3cdcf84f27ca6e8ed37bca6 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Sat, 3 Apr 2010 20:40:50 -0400 Subject: [PATCH] Fixed extended layout implementors to not call ->get_desired_size() directly Getting the desired size of a GtkWidget must always be done with gtk_widget_get_desired_size() and never with gtk_extended_layout_get_desired_size() directly as the former passes through size group logic and updates the widget->requisition cache. --- gtk/gtkalignment.c | 2 +- gtk/gtkbin.c | 19 +++++++++---------- gtk/gtklabel.c | 12 ++++++------ gtk/gtkplug.c | 6 +++--- gtk/gtksocket.c | 6 +++--- 5 files changed, 22 insertions(+), 23 deletions(-) diff --git a/gtk/gtkalignment.c b/gtk/gtkalignment.c index 3accb4ddb7..8837fca809 100644 --- a/gtk/gtkalignment.c +++ b/gtk/gtkalignment.c @@ -461,7 +461,7 @@ gtk_alignment_size_allocate (GtkWidget *widget, { GtkExtendedLayout *layout = GTK_EXTENDED_LAYOUT (bin->child); - gtk_extended_layout_get_desired_size (layout, NULL, &child_requisition); + gtk_widget_get_desired_size (GTK_WIDGET (layout), NULL, &child_requisition); border_width = GTK_CONTAINER (alignment)->border_width; diff --git a/gtk/gtkbin.c b/gtk/gtkbin.c index 8da28ef188..e141529e5f 100644 --- a/gtk/gtkbin.c +++ b/gtk/gtkbin.c @@ -156,12 +156,11 @@ gtk_bin_extended_layout_get_desired_size (GtkExtendedLayout *layout, GtkRequisition *minimum_size, GtkRequisition *natural_size) { - GtkBin *bin = GTK_BIN (layout); + GtkWidget *child; - g_return_if_fail (GTK_IS_EXTENDED_LAYOUT (bin->child)); + child = gtk_bin_get_child (GTK_BIN (layout)); - gtk_extended_layout_get_desired_size (GTK_EXTENDED_LAYOUT (bin->child), - minimum_size, natural_size); + gtk_widget_get_desired_size (child, minimum_size, natural_size); } static void @@ -170,11 +169,11 @@ gtk_bin_extended_layout_get_width_for_height (GtkExtendedLayout *layout, gint *minimum_width, gint *natural_width) { - GtkBin *bin = GTK_BIN (layout); + GtkWidget *child; - g_return_if_fail (GTK_IS_EXTENDED_LAYOUT (bin->child)); + child = gtk_bin_get_child (GTK_BIN (layout)); - gtk_extended_layout_get_width_for_height (GTK_EXTENDED_LAYOUT (bin->child), + gtk_extended_layout_get_width_for_height (GTK_EXTENDED_LAYOUT (child), height, minimum_width, natural_width); } @@ -184,11 +183,11 @@ gtk_bin_extended_layout_get_height_for_width (GtkExtendedLayout *layout, gint *minimum_height, gint *natural_height) { - GtkBin *bin = GTK_BIN (layout); + GtkWidget *child; - g_return_if_fail (GTK_IS_EXTENDED_LAYOUT (bin->child)); + child = gtk_bin_get_child (GTK_BIN (layout)); - gtk_extended_layout_get_height_for_width (GTK_EXTENDED_LAYOUT (bin->child), + gtk_extended_layout_get_height_for_width (GTK_EXTENDED_LAYOUT (child), width, minimum_height, natural_height); } diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 2759bb22ba..f8370eba90 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -3333,9 +3333,9 @@ gtk_label_get_width_for_height (GtkExtendedLayout *layout, { GtkRequisition minimum_size, natural_size; - gtk_extended_layout_get_desired_size (layout, - minimum_width ? &minimum_size : NULL, - natural_width ? &natural_size : NULL); + gtk_widget_get_desired_size (layout, + minimum_width ? &minimum_size : NULL, + natural_width ? &natural_size : NULL); if (minimum_width) *minimum_width = minimum_size.width; @@ -3359,9 +3359,9 @@ gtk_label_get_height_for_width (GtkExtendedLayout *layout, { GtkRequisition minimum_size, natural_size; - gtk_extended_layout_get_desired_size (layout, - minimum_height ? &minimum_size : NULL, - natural_height ? &natural_size : NULL); + gtk_widget_get_desired_size (layout, + minimum_height ? &minimum_size : NULL, + natural_height ? &natural_size : NULL); if (minimum_height) *minimum_height = minimum_size.height; diff --git a/gtk/gtkplug.c b/gtk/gtkplug.c index be0fe398a7..9351e9638e 100644 --- a/gtk/gtkplug.c +++ b/gtk/gtkplug.c @@ -781,9 +781,9 @@ gtk_plug_size_allocate (GtkWidget *widget, } - gtk_extended_layout_get_desired_size (GTK_EXTENDED_LAYOUT (bin->child), - NULL, &natural_size); - _gtk_plug_windowing_publish_natural_size (GTK_PLUG (widget), &natural_size); + gtk_widget_get_desired_size (bin->child, + NULL, &natural_size); + _gtk_plug_windowing_publish_natural_size (GTK_PLUG (widget), &natural_size); } static gboolean diff --git a/gtk/gtksocket.c b/gtk/gtksocket.c index b19b4a5049..3ca605fb42 100644 --- a/gtk/gtksocket.c +++ b/gtk/gtksocket.c @@ -1022,9 +1022,9 @@ gtk_socket_extended_layout_get_desired_size (GtkExtendedLayout *layout, if (socket->plug_widget) { - gtk_extended_layout_get_desired_size (GTK_EXTENDED_LAYOUT (socket->plug_widget), - minimal_size, - desired_size); + gtk_widget_get_desired_size (socket->plug_widget, + minimal_size, + desired_size); } else { -- 2.30.2